/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema.ecua911.datos.BDs;

import sistema.ecua911.negocio.Usuario;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import sistema.ecua911.negocio.Persona;


/**
 *
 * @author pablo
 */
public class UsuarioBD {

    public boolean grabar(Usuario u) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "insert into persona values('" + u.getCedula() + "','" + u.getNombre() + "','" + u.getApellido() + "','" + u.getTelefono() + "','" + u.getDirecion().getIdDirecion() + "','" + u.getCiudad() + "')";
        String query2 = "insert into usuario values('" + u.getCedula() + "')";
        Boolean resultado = db.ingreso(query);
        Boolean resultado2 = db.ingreso(query2);
        db.cerrarConexion();
        return resultado;
    }
    public int modificar(Usuario u) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "update usuario set nombre='" + u.getNombre() + "', apellido='" + u.getApellido() + "' where cedula='" + u.getCedula() + "'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
    public int eliminar(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "delete from usuario where cedula='" + cedula + "'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
    public Persona buscar(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from persona,usuario where usuario.cedula=persona.cedula and usuario.cedula='"+cedula+"'";
        ResultSet resultado = db.seleccion(query);
        Persona user=null;
        if (resultado.next()) {
            DireccionDB dirDB = new DireccionDB();
            user = new Usuario();
            user.setDirecion(dirDB.buscar(resultado.getInt(5)));
            System.out.println(user.getDirecion().toString());
            user.setCedula(resultado.getString(1));
            user.setNombre(resultado.getString(2));
            user.setApellido(resultado.getString(3));
            user.setTelefono(resultado.getString(4));   
        }
        db.cerrarConexion();
        return user;
    }
    public ArrayList listar() throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "select * from persona ,(select * from usuario)tb where tb.cedula=persona.cedula ";
        ResultSet resultado = db.seleccion(query);
        Usuario user = null;
        ArrayList todos = new ArrayList();
        while (resultado.next()) {
            user = new Usuario();
            user.setIddireccion(Integer.valueOf(resultado.getString(5)));
            user.setCedula(resultado.getString(1));
            user.setNombre(resultado.getString(2));
            user.setApellido(resultado.getString(3));
            user.setTelefono(resultado.getString(4));
            user.setCiudad(resultado.getString(6));
            todos.add(user);
        }
        db.cerrarConexion();
        return todos;
    }
}
